/**
 * @description 仿照 Python 中的字符串 format 方法，
 *    实现 JS 中的字符串的 format方法
 *    该方法使用正则表达式进行对字符串的匹配，
 *    并使用 replace 方法替换匹配的字符串，
 * @param {string} str 原字符串
 * @param {Object} format 替换规则，使用 JSON 格式数据进行替换
 * @returns 字符串替换后的结果
 * @example
 *    str = "My name is {name}";
 *    format = {
 *        name: "Jack",
 *    };
 *    r = strFormat(str, format);
 *    结果为 r = "My name is Jack";
 */
const strFormat = (str, format) => {
  return str.replace(/{\w+}/g, substring => {
    return format[substring.slice(1,-1)];
  });
};

module.exports = strFormat;